<Project>
  <ItemGroup Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator' or '$(TargetOS)' == 'maccatalyst'">
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'arm64' and '$(TargetOS)' != 'maccatalyst'" Include="mtriple=arm64-ios" />
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'arm64' and '$(TargetOS)' == 'maccatalyst'" Include="mtriple=arm64-apple-ios14.2-macabi" />
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'x64' and '$(TargetOS)' != 'maccatalyst'" Include="mtriple=x86_64-ios" />
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'x64' and '$(TargetOS)' == 'maccatalyst'" Include="mtriple=x86_64-apple-ios13.5-macabi" />
    <MonoAOTCompilerDefaultAotArguments Include="static" />
    <MonoAOTCompilerDefaultAotArguments Include="dwarfdebug" />
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'arm64'" Include="mattr=+crc" /> <!-- enable System.Runtime.Intrinsics.Arm (Crc32 and ArmBase for now) -->
    <!--<MonoAOTCompilerDefaultAotArguments Include="direct-pinvoke" />--> <!-- TODO: enable direct-pinvokes (to get rid of -force_loads)-->
  </ItemGroup>
  <ItemGroup Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator' or '$(TargetOS)' == 'maccatalyst'">
    <MonoAOTCompilerDefaultProcessArguments Include="-O=gsharedvt" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'maccatalyst'">
    <MonoAOTCompilerDefaultAotArguments Include="direct-icalls" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetOS)' == 'android'">
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'arm'" Include="mtriple=armv7-linux-gnueabi" />
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'arm64'" Include="mtriple=aarch64-linux-android" />
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'x86'" Include="mtriple=i686-linux-android" />
    <MonoAOTCompilerDefaultAotArguments Condition="'$(TargetArchitecture)' == 'x64'" Include="mtriple=x86_64-linux-android" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetOS)' == 'android' or '$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator' or '$(TargetOS)' == 'maccatalyst'">
    <!-- Default trampolines run out for libraries tests -->
    <MonoAOTCompilerDefaultAotArguments Include="nimt-trampolines=2000" />
    <MonoAOTCompilerDefaultAotArguments Include="ntrampolines=10000" />
    <MonoAOTCompilerDefaultAotArguments Include="nrgctx-fetch-trampolines=256" />
    <MonoAOTCompilerDefaultAotArguments Include="ngsharedvt-trampolines=4400" />
    <MonoAOTCompilerDefaultAotArguments Include="nftnptr-arg-trampolines=4000" />
    <MonoAOTCompilerDefaultAotArguments Include="nrgctx-trampolines=21000" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetOS)' == 'browser'">
    <MonoAOTCompilerDefaultAotArguments Include="no-opt" />
    <MonoAOTCompilerDefaultAotArguments Include="static" />
    <MonoAOTCompilerDefaultAotArguments Include="direct-icalls" />
    <MonoAOTCompilerDefaultAotArguments Include="deterministic" />
  </ItemGroup>
</Project>
